import type PageModal from '@/components/PageModal/PageModal.vue'

type CallBackFn = (item?: any) => void
export function usePageModal(newCb?: CallBackFn, editCb?: CallBackFn): any {
  // modal组件实例
  const pageModalRef = ref<InstanceType<typeof PageModal>>()

  const modalInfo = ref({}) // 初始的值 是空的
  // 编辑
  const handleEditData = (item: any) => {
    modalInfo.value = { ...item }
    if (pageModalRef.value) {
      pageModalRef.value.dialogVisible = true
    }
    // 逻辑运算符 存在才执行
    editCb && editCb(item)
  }
  // 新建
  const handleNewData = () => {
    // 新建的时候输入是为空的
    modalInfo.value = {}
    if (pageModalRef.value) {
      pageModalRef.value.dialogVisible = true
    }
    // 逻辑运算符 有传入才执行
    newCb && newCb()
  }
  return [modalInfo, pageModalRef, handleEditData, handleNewData]
}
